The invention relates to apparatus and methods for effectuating screen display of multiple overlapping window images, and more particularly to apparatus and methods for updating an image memory that stores the pattern displayed on the screen.
Modern graphics computers, i.e., graphics processors, are capable of simultaneously executing, or essentially simultaneously, a plurality of separate graphics routines or programs, which may be dependent or independent. Typically, each of the graphics routines "assumes" that it has the entire CRT (cathode ray tube) display screen area available to it, and outputs pixel data, i.e., image data, accordingly. Techniques for simultaneously displaying a portion of each of the images produced by such separate graphics routines on a single screen are referred to as "windowing" techniques. Where multiple windows are provided to allow simultaneous display of portions of the various images on a single screen, various techniques have been utilized to prevent display of images outside of their respective windows, and, in a few instances, to prevent display of portions of images "obscured" by higher priority images, i.e., images in a higher priority window. In many prior windowing systems, the "clipping" of portions of a particular image outside the boundaries of a window is accomplished by executing elaborate clipping routines executed by the graphics processor. Although this approach provides the desired window clipping function, it requires extensive computing by the graphics processor, and requires extensive effort by the programmer who must write the software executed by the graphics processor; this approach also is very slow. A few prior graphics display systems have utilized software techniques within the image generating programs executed by the graphics processor to determine which areas of lower priority windows are obscured by higher priority windows. Such software techniques have been effectuated by cumbersome, time-consuming algorithms that must be executed by the graphics processor along with the image generating programs. The complexity of the software, the slowness of execution of such algorithms, and the burden upon the persons writing the software are so great that most computer graphics display systems simply avoid updating information in obscured windows.
Hardware approaches to the above-mentioned windowing functions have been proposed, both to clip portions of an image extending beyond a window predefined for that image, and to prevent display of portions of lower priority images that are obscured by higher priority images. The state-of-the-art is perhaps best illustrated in U.S. Pat. No. 4,412,296 (Taylor) and in "Principles of Interactive Computer Graphics" by William M. Newman and Robert F. Sproull, 1979, McGraw-Hill, Inc. Other references illustrative of the state-of-the-art include U.S. Pat. Nos. 3,639,736, 4,492,956, 4,500,875, 4,509,043, 4,278,973, and 4,475,161.
The technique described in the above-mentioned Taylor patent provides a hardware clipping technique for defining boundaries that "frame" higher priority symbology and prevent display of portions of lower priority symbology which would otherwise interfere with the display of the higher priority graphic symbols. However, this approach is generally unsuitable for dealing with the problem of updating bit mapped display memories, wherein every pixel of the screen is represented by a corresponding pixel code stored in the display memory, which is periodically read to update the screen image, and is occassionally updated by information received from the graphics processor. The technique described in the Taylor patent has the limitation that the number of allowed obscured boundarie's at any given x position is limited to one, for the disclosed circuitry. If additional obscured boundaries at that x coordinate are desired, the disclosed circuitry must be replicated for each. This is highly undesirable, because it would be desirable to provide a flexible graphics system that would allow the programmer to provide a large number of overlapping windows, and hence a large number of obscured areas. As a result of the complexity of prior software bit manipulation techniques that could be used to effectuate updating of an image display memory where multiple obscured window areas might occur, present bit mapped display systems utilizing image memories do not, to our knowledge, provide a mechanism for automatic updating, concurrently with image program processing, of multiple overlapping windows with partially obscured ones.